home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
CC_C
/
0574.ZIP
/
FGETS.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-11-21
|
751b
|
50 lines
include compiler.inc
ttl FGETS, 1.05, 11-21-86, clr
;corrected version, meets standard conventions now.
lf equ 0ah
dseg
cseg
xtfs <fgetc,$strhand>
procdef fgets, <<bfr, ptr>, <buflen, word>, <strm, ptr>>
; locs <<bfbeg, ptr>>
pushreg
ldptr di, bfr ;else just lay it down
pushptr strm ;move outside the loop
fgs1:
dec buflen
js fgs2 ;buffer is full, force end
callit fgetc ; stream pointer pushed outside the loop
inc ax ;if was EOF...
jz fgs3 ;return NULL
dec ax ;get char back
cld
stosb
cmp ax, lf ;then check for LF
jne fgs1 ;no, go back for another
fgs2:
xor ax, ax
cld
stosb
clc
fgs4:
retptrm bfr
fgs3:
stc
jmp short fgs4
pend fgets
finish